const fs = require('fs')

// // 1. read: 把数据从磁盘文件中读取到/写入到 buffer 中
// let buf = Buffer.alloc(10)

// fs.open('data.txt', 'r', (err, rfd) => {
//   /**
//    * 参数1：文件操作标识符 fd
//    * 参数2：存放的 buffer
//    * 参数3：从buffer的哪个位置进行写操作 offset
//    * 参数4：数据的长度 length
//    * 参数5：从读取的数据哪个位置开始读取 position
//    * 参数6：回调函数 参数1错误信息 参数2读取字节数 参数3读取的数据内容
//    */
//   fs.read(rfd, buf, 1, 4, 2, (err, readBytes, data) => {
//     console.log(readBytes)
//     console.log(data)
//     console.log(data.toString())
//     // 4
//     // <Buffer 00 33 34 35 36 00 00 00 00 00>
//     //  3456
//   })
// })

// 2. write 将缓冲区内容写入磁盘文件
let buf = Buffer.from('1234567890')
fs.open('b.txt', 'w', (err,wfd) => {
  /**
   * 参数1：文件操作标识符 fd
   * 参数2：用于读取内容的 buffer
   * 参数3：从buffer的哪个位置进行读取 offset
   * 参数4：数据的长度 length
   * 参数5：从读取的数据哪个位置开始写入文件，一般不动，为0，否则会产生乱码字符 position
   * 参数6：回调函数 参数1错误信息 参数2实际写入文件的字节数 参数3用于读取的完整buffer
   */
  fs.write(wfd, buf, 1, 4, 2, (err, written, buffer) => {
    console.log(written)
    console.log(buffer)
    console.log(buffer.toString())
    // 4
    // <Buffer 31 32 33 34 35 36 37 38 39 30>
    // 1234567890
    fs.close(wfd)
  })
})
